<template>
  <div class="create_order">
    <Header title="生成订单" />
    <van-contact-card type="edit" :tel="currentContact.tel" :name="currentContact.name" @click="onEdit" />
    <div class="content">
      <div v-for="i in store.state.orderList">
        <van-card
          :num="i.num"
          :price="i.price"
          :title="i.title"
          :thumb="i.pic"
        />
      </div>
    </div>
    <div class="pay-wrap">
      <div class="price">
        <span>商品金额</span>
        <span>￥{{ allPrice }}</span>
      </div>
      <van-button type="primary" @click="handleCreateOrder" block class="pay-btn" color="#ffc400">生成订单</van-button>
    </div>
  </div>
</template>

<script>
import { onMounted, reactive, toRefs } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { useStore } from 'vuex';
import { Dialog } from 'vant';
import Header from '../../components/Header.vue';
export default { 
  components: { Header },
  setup(){
    const router = useRouter()
    const route = useRoute()
    const store = useStore()
    let data = reactive({
      currentContact: {
        name: "",
        tel: ""
      },
      allPrice: 0
    })

    // 用户信息初始化
    function initUser(){
      store.state.userAddress.forEach((item)=>{
        if(item.isDefault){
          data.currentContact.name = item.name,
          data.currentContact.tel = item.tel
        }
      })
    }

  // 总价初始化
    function initPrice() {
      let price = 0
      if(store.state.orderList.length){
        store.state.orderList.forEach((item)=>{
          price += item.num *item.price
        })
        data.allPrice = price
      } 
    }
    onMounted(()=>{
        initPrice()
        initUser()
      })

    function onEdit(){
      router.push("./address")
    }
// 生成订单按钮
    function handleCreateOrder(){
      Dialog.alert({
        title:'提示',
        message:'恭喜，您的订单已完成'
      }).then(()=>{
        let newList = store.state.cartList.filter((item)=>{
          return !route.query.list.includes(item.id +"")
        })
        store.commit('DELETE',newList)
        store.commit('UPDATEORDER')
        router.push("./order")
        
      })
    }

    return {
      ...toRefs(data),
      onEdit,
      store,
      handleCreateOrder,
      // initPrice
    }
  }  
}
</script>

<style lang="less" scoped>
.create_order{
  display: flex;
  flex-flow: column;
  height: 100%;
  .content{
    flex: 1;
    overflow-y: auto;
  }
  .pay-wrap{
    padding: 10px 0;
    width: 100%;
    background: #fff;
    border-top: 1px solid #e9e9e9;
    > div {
      justify-content: space-between;
      padding: 0 5%;
      margin: 10px 0;
      font-size: 14px;
      span:nth-child(2){
        color: red;
        font-size: 18px;
      }
    }
    .pay-btn{
      width: 90%;
      margin: 0 auto;
    }
  }
}
</style>